1. Field of the Invention
This invention generally relates to data communication devices, and more specifically to control of data communication interfaces.
2. Related Art
Data communication interfaces are used in conjunction with a wide variety of products. In one common example, a data communication interface permits a digital camera to communicate image-descriptive data to computing and display devices, downloading data that is accumulated in order to be printed directly, or to be stored on some storage medium. As another example, in many countries, Removable User Identity Modules (“R-UIMs,” also called SIM cards) commonly provide information that can be used to personalize a cellular telephone with respect to unique user information such as, for example, user identity, settings, and pre-paid airtime allocations.
Two distinct interface devices are typically employed in such data communications. For convenience, one of the interface devices is referred to herein as a “host device.” The other interference device is referred to herein as a “client device.” Data communications between such interface device pairs are generally bidirectional, even if one of the interface devices (e.g., a client device) serves primarily as a source of data to be communicated to the other device (e.g., a host device). An interface is required for data communications to occur between such pairs of interface devices.
As is well known, a data communication interface may be designed to support performance-enhancing features, generally at the expense of design and device complexity. For example, a need to provide high transmission speeds with low error rates may dictate that the communication interface be designed with features such as flow control and handshaking alternatives. However, in other situations, it will be desirable for an interface to be as simple as possible. For example, a client device may need to be very inexpensive to manufacture, and consequently may be designed to have only minimum features required to ensure reliable data transfer.
Because data transmissions are almost always subject to errors, even simple data communication interfaces typically provide features that permit recovery from transmission errors. One or more error notification features may be included, such as, for example, a parity error indication, together with a recovery feature, such as a capability to retransmit a block of data upon receiving notification of a transmission error. Functional data communication features of a host-client device pair are generally limited to features that are supported by both the host and the client devices.
Under some circumstances, one of the two devices involved in a data transfer (e.g., the client device) may provide minimal error recognition and response capabilities, and may entirely omit support for other useful features, such as flow control. Nonetheless, it may be desirable for the associated and corresponding device (e.g., the host device) to utilize flow control, or some other non-supported interface feature. For example, flow control features may be useful for a host interface device, permitting background data transfers to the host computing device, and thus freeing the host computing device from servicing critical interrupt service requirements that an absence of flow control might otherwise require. As another example, flow control features may permit data transfers to proceed at increased speeds, while protecting against buffer overflows, thus enabling the host device to complete data transfers more quickly than it could without these flow control features.
Thus, it is useful to incorporate performance enhancing data communication protocol features, such as flow control, in an interface device (e.g., a host device), despite an absence of support for such protocol features by a corresponding device on the other side of the interface (e.g., a client device). A method and apparatus to achieve this goal is set forth herein.